home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / g_man / cat3 / OpenGL / glsamplemasksgis.z / glsamplemasksgis
Encoding:
Text File  |  2002-10-03  |  8.8 KB  |  133 lines

  1.  
  2.  
  3.  
  4. ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))           OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee           ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS - define mask to modify multisampled pixel fragments
  10.  
  11.  
  12. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  13.      void ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS( GLclampf _v_a_l_u_e,
  14.                             GLboolean _i_n_v_e_r_t )
  15.  
  16.  
  17. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  18.      _v_a_l_u_e   Specifies coverage of the modification mask.  Clamped to the
  19.              range [0, 1]; zero implies no coverage, and one implies full
  20.              coverage.
  21.  
  22.      _i_n_v_e_r_t  GGGGLLLL____FFFFAAAALLLLSSSSEEEE to use the modification mask implied by _v_a_l_u_e; GGGGLLLL____TTTTRRRRUUUUEEEE
  23.              to use the bitwise inverse of that mask.
  24.  
  25.  
  26. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  27.      ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS defines a mask to modify the coverage of multisampled
  28.      pixel fragments.  This capability is used for antialiased screen-door
  29.      transparency and smooth transitions between two renderings of an object
  30.      (often for level-of-detail management in simulation systems).
  31.  
  32.      When multisampling is enabled (see ggggllllEEEEnnnnaaaabbbblllleeee with argument
  33.      GGGGLLLL____MMMMUUUULLLLTTTTIIIISSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIIISSSS) a ``fragment mask'' is computed for each fragment
  34.      generated by a primitive.  This mask reflects the amount of the pixel
  35.      covered by the fragment, and determines the frame buffer samples that may
  36.      be affected by the fragment.
  37.  
  38.      If conversion of alpha values to masks is enabled (ggggllllEEEEnnnnaaaabbbblllleeee with argument
  39.      GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____MMMMAAAASSSSKKKK____SSSSGGGGIIIISSSS), the fragment alpha value is used to
  40.      generate a temporary modification mask which is then ANDed with the
  41.      fragment mask.  One way to interpret this is as a form of dithering: a
  42.      multivalued alpha (coverage or opacity) for the whole fragment is
  43.      converted to simple binary values of coverage at many locations (the
  44.      samples).
  45.  
  46.      After conversion of alpha values to masks, if replacement of alpha values
  47.      is enabled (ggggllllEEEEnnnnaaaabbbblllleeee with argument GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____OOOONNNNEEEE____SSSSGGGGIIIISSSS), the
  48.      fragment's alpha is set to the maximum allowable value.
  49.  
  50.      Finally, if fragment mask modification is enabled (ggggllllEEEEnnnnaaaabbbblllleeee with argument
  51.      GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____SSSSGGGGIIIISSSS), ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS defines an additional modification
  52.      mask.  _v_a_l_u_e is used to generate a modification mask in much the same way
  53.      alpha was used above.  If _i_n_v_e_r_t is GGGGLLLL____TTTTRRRRUUUUEEEE, then the modification mask
  54.      specified by _v_a_l_u_e will be inverted.  The final modification mask will
  55.      then be ANDed with the fragment mask resulting from the previous steps.
  56.      This can be viewed as an ``override'' control that selectively fades the
  57.      effects of multisampled fragments.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))           OOOOppppeeeennnnGGGGLLLL RRRReeeeffffeeeerrrreeeennnncccceeee           ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      Note that ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS(_v_a_l_u_e, GGGGLLLL____TTTTRRRRUUUUEEEE) is not necessarily equivalent
  75.      to ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS(1.0-_v_a_l_u_e, GGGGLLLL____FFFFAAAALLLLSSSSEEEE); due to round-off and other
  76.      issues, complementing the coverage will not necessarily yield an inverted
  77.      modification mask.
  78.  
  79.  
  80. NNNNOOOOTTTTEEEESSSS
  81.      ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS is part of the SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee extension, not part of
  82.      the core GL command set.  If GGGGLLLL____SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee is included in the
  83.      string returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg, when called with argument GGGGLLLL____EEEEXXXXTTTTEEEENNNNSSSSIIIIOOOONNNNSSSS,
  84.      extension SSSSGGGGIIIISSSS____mmmmuuuullllttttiiiissssaaaammmmpppplllleeee is supported by the connection.
  85.  
  86.  
  87. EEEERRRRRRRROOOORRRRSSSS
  88.      GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN is generated if ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS is executed between
  89.      the execution of ggggllllBBBBeeeeggggiiiinnnn and the corresponding execution of ggggllllEEEEnnnndddd.
  90.  
  91. AAAASSSSSSSSOOOOCCCCIIIIAAAATTTTEEEEDDDD GGGGEEEETTTTSSSS
  92.      ggggllllGGGGeeeetttt with argument GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____VVVVAAAALLLLUUUUEEEE____SSSSGGGGIIII, or
  93.      GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____IIIINNNNVVVVEEEERRRRTTTT____SSSSGGGGIIII.
  94.      ggggllllIIIIssssEEEEnnnnaaaabbbblllleeeedddd with argument GGGGLLLL____MMMMUUUULLLLTTTTIIIISSSSAAAAMMMMPPPPLLLLEEEE____SSSSGGGGIIII, GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____MMMMAAAASSSSKKKK,
  95.      GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____AAAALLLLPPPPHHHHAAAA____TTTTOOOO____OOOONNNNEEEE____SSSSGGGGIIII, GGGGLLLL____SSSSAAAAMMMMPPPPLLLLEEEE____MMMMAAAASSSSKKKK____SSSSGGGGIIII.
  96.  
  97.  
  98. MMMMAAAACCCCHHHHIIIINNNNEEEE DDDDEEEEPPPPEEEENNNNDDDDEEEENNNNCCCCIIIIEEEESSSS
  99.      Multisampling is supported only on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX
  100.      and IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.  Currently it can be used with windows of
  101.      multisample-capable Visual types, but not with pixmaps.
  102.  
  103.  
  104. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  105.      ggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.